package edu.uoc.tds.pec3.cliente;

import edu.uoc.tds.pec3.comun.Evento;
import edu.uoc.tds.pec3.comun.EventoGasto;
import edu.uoc.tds.pec3.comun.Proveedor;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.rmi.RemoteException;
import java.sql.Date;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import java.util.ArrayList;

/**
 *
 * @author JUAN ANTONIO
 */
public class PanelConsultaGastosEvento extends JPanel implements ActionListener {
    private Cliente cliente;
    private JLabel jlabel_ConsultaGastosEvento;
    private JLabel jlabel_Evento;
    private JLabel jlabel_Proveedor;
    private JLabel jlabel_Total;
    private JComboBox jcombobox_Evento;
    private JComboBox jcombobox_Proveedor;
    private JButton jbutton_Buscar;
    private JTable JTable_Tabla;
    private String[] nombresColumnas = {
            "Fecha valor", "Proveedor", "Concepto", "Descripción", "Importe"
        };
    public PanelConsultaGastosEvento(Cliente cliente){
        super();
        this.cliente = cliente;
        iniciarComponentes();
    }

    private void iniciarComponentes(){
        jlabel_ConsultaGastosEvento = new JLabel("Consulta de gastos de un evento");
        jlabel_Evento = new JLabel("Evento:");
        jlabel_Proveedor = new JLabel("Proveedor:");
        jlabel_Total = new JLabel("Total:");
        jcombobox_Evento = new JComboBox(cliente.getDescripcionesEventos().toArray());
        jcombobox_Proveedor = new JComboBox(cliente.getDescripcionesProveedores().toArray());
        jbutton_Buscar = new JButton("Buscar");
        jbutton_Buscar.setFocusable(false);
        String[][] filas = new String[3][5];


        JTable_Tabla = new JTable(filas, nombresColumnas);
        JTable_Tabla.setFocusable(false);

        JPanel panelCentral = new JPanel(new GridLayout(2, 1, 10, 15));
        JPanel panelCentralArriba = new JPanel();
        JPanel panelCentralAbajo = new JPanel();
        panelCentralArriba.add(jlabel_Evento);
        panelCentralArriba.add(jcombobox_Evento);
        panelCentralArriba.add(jlabel_Proveedor);
        panelCentralArriba.add(jcombobox_Proveedor);
        panelCentralArriba.add(jbutton_Buscar);
        panelCentralAbajo.add(JTable_Tabla);
        panelCentral.add(panelCentralArriba);
        panelCentral.add(panelCentralAbajo);

        setLayout(new BorderLayout());
        add(jlabel_ConsultaGastosEvento, BorderLayout.NORTH);
        add(panelCentral, BorderLayout.CENTER);
        add(jlabel_Total, BorderLayout.SOUTH);

        jbutton_Buscar.addActionListener(this);
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == jbutton_Buscar){
            configurarTabla();
        }
    }

    private void configurarTabla()
    {

        try {
        Evento evento = cliente.getEventos().
                get(jcombobox_Evento.getSelectedIndex());
        Proveedor proveedor = cliente.getProveedores().
                get(jcombobox_Proveedor.getSelectedIndex());

        ArrayList<EventoGasto> eventog = cliente.getRemotoPEC3().getEventog(evento, proveedor);

            String[][] filas = new String[eventog.size()][5];
            for (int i = 0; i < eventog.size(); i++) {
                EventoGasto eventod = eventog.get(i);
                filas[i][0] = eventod.getFecha();
                filas[i][1] = eventod.getProveedor();
                filas[i][2] = eventod.getConcepto();
                filas[i][3] = eventod.getDescripcion();
                filas[i][4] = Long.toString(eventod.getImporte());

            }
            JTable_Tabla = new JTable(filas, nombresColumnas);



        } catch (RemoteException ex) {
            Logger.getLogger(PanelGastosTotalesConcepto.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
